Low-power system clock calibration based on a high-accuracy reference clock

ABSTRACT

Various techniques are described for periodically performing a calibration routine to calibrate a low-power system clock within an implantable medical device (IMD) based on a high accuracy reference clock also included in the IMD. The system clock is powered continuously, and the reference clock is only powered on during the calibration routine. The techniques include determining a clock error of the system clock based on a difference between frequencies of the system clock and the reference clock over a fixed number of clock cycles, and adjusting a trim value of the system clock to compensate for the clock error. Calibrating the system clock with a delta-sigma loop, for example, reduces the clock error over time. This allows accurate adjustment of the system clock to compensate for errors due to trim resolution, circuit noise and temperature.

TECHNICAL FIELD

This disclosure relates to implantable medical devices and, moreparticularly, to clocking systems of implantable medical devices.

BACKGROUND

A variety of medical devices for delivering a therapy and/or monitoringa physiological condition have been used clinically or proposed forclinical use in patients. Examples include medical devices that delivertherapy to and/or monitor conditions associated with the heart, muscle,nerve, brain, stomach or other organs or tissue. Some therapies includethe delivery of electrical signals, e.g., stimulation, to such organs ortissues. Some medical devices may employ one or more elongatedelectrical leads carrying electrodes for the delivery of therapeuticelectrical signals to such organs or tissues, electrodes for sensingintrinsic electrical signals within the patient, which may be generatedby such organs or tissue, and/or other sensors for sensing physiologicalparameters of a patient. Some medical devices may be “leadless” andinclude one or more electrodes on an outer housing of the medical deviceto deliver therapeutic electrical signals to organs or tissues and/orsense intrinsic electrical signals or physiological parameters of apatient.

Medical leads may be configured to allow electrodes or other sensors tobe positioned at desired locations for delivery of therapeuticelectrical signals or sensing. For example, electrodes or sensors may becarried at a distal portion of a lead. A proximal portion of the leadmay be coupled to a medical device housing, which may contain circuitrysuch as signal generation and/or sensing circuitry. In some cases, themedical leads and the medical device housing are implantable within thepatient, while in other cases percutaneous leads may be implanted andconnected to a medical device housing outside of the patient. Medicaldevices with a housing configured for implantation within the patientmay be referred to as implantable medical devices. Leadless medicaldevices are typically implantable medical devices positioned within oradjacent to organs or tissues within a patient for delivery oftherapeutic electrical signals or sensing. In some example, leadlessimplantable medical devices may be anchored to a wall of an organ or totissue via a fixation mechanism.

Implantable cardiac pacemakers or cardioverter-defibrillators, forexample, provide therapeutic electrical signals to the heart, e.g., viaelectrodes carried by one or more medical leads or via electrodes on anouter housing of a leadless implantable medical device. The therapeuticelectrical signals may include pulses for pacing, or shocks forcardioversion or defibrillation. In some cases, a medical device maysense intrinsic depolarizations of the heart, and control delivery oftherapeutic signals to the heart based on the sensed depolarizations.Upon detection of an abnormal rhythm, such as bradycardia, tachycardiaor fibrillation, an appropriate therapeutic electrical signal or signalsmay be delivered to restore or maintain a more normal rhythm. Forexample, in some cases, an implantable medical device may deliver pacingstimulation to the heart of the patient upon detecting tachycardia orbradycardia, and deliver cardioversion or defibrillation shocks to theheart upon detecting fibrillation.

In general, implantable medical devices require a small housing formfactor to enable an unobtrusive implantation within a patient. In thecase of leadless implantable medical devices, the housing form factormust be extremely small to enable implantation within or adjacent toorgans or tissue. For example, a leadless pacemaker may be implanteddirectly into a ventricle of the heart. Battery usage is always aconcern when designing implantable medical devices, but this concern isincreased for small form factor devices that can only accommodate asmall battery canister. A competing design requirement for implantablemedical devices is high accuracy clocks that use a substantial amount ofcurrent. High clocking accuracy is needed to ensure accurate sensing anddelivery of therapeutic electrical signals. Low-power clocks are tooinaccurate due to poor long-term stability, temperature characteristics,and trim resolution to meet these requirements.

SUMMARY

In general, this disclosure describes techniques for periodicallyperforming a calibration routine to calibrate a low-power system clockwithin an implantable medical device (IMD) based on a high accuracyreference clock also included in the IMD. The low-power system clock ispowered continuously and controls operation of the IMD, and the highaccuracy reference clock is only powered on during the calibrationroutine to correct inaccuracies of the system clock. The techniquesdisclosed herein may be employed within an IMD, such as an implantablepacemaker or an implantable leadless pacemaker, to reduce current drainby the clocking system of the IMD.

The techniques include powering on the reference clock at the start ofthe calibration routine, determining a clock error of the system clockbased on a difference between the frequencies of the system clock andthe reference clock over a fixed number of clock cycles of the systemclock, adjusting a trim value of the system clock to compensate for theclock error, and disabling the reference clock at an end of thecalibration routine. In some examples, the calibration routine may beperformed with a delta-sigma loop, which includes integrating the clockerror over time to calculate a cumulative clock error of the systemclock, and adjusting the trim value of the system based on the magnitudeand sign of the cumulative clock error. Calibrating the system clockwith a delta-sigma loop reduces the clock error over time. This allowsaccurate adjustment of the system clock to compensate for errors due totrim resolution, circuit noise and temperature. Similar techniquesdescribed in this disclosure may be used to calibrate other clocksincluded in an IMD, such as a telemetry polling clock and a telemetrylinking clock used to operate a telemetry module of the IMD.

In one example, the disclosure is directed to an IMD that includes aprocessor, a system clock that comprises a low power oscillator,according to which the processor operates the IMD, a reference clockthat comprises a high accuracy oscillator, and a clock calibrator thatperiodically performs a calibration routine to calibrate the systemclock based on the reference clock, wherein the system clock iscontinuously powered and the reference clock is powered during thecalibration routine.

In another example, the disclosure is directed to a method, whichincludes operating an IMD in accordance with a system clock thatcomprises a low power oscillator clock included in the IMD, andperiodically performing a calibration routine to calibrate the systemclock based on the reference clock, wherein the system clock iscontinuously powered and the reference clock is powered during thecalibration routine.

In a further example, the disclosure is directed to an IMD comprising asystem clock that comprises a low power oscillator, a reference clockthat comprises a high accuracy oscillator, means for operating the IMDin accordance with the system clock, and means for periodicallyperforming a calibration routine to calibrate the system clock based onthe reference clock, wherein the system clock is continuously poweredand the reference clock is powered during the calibration routine.

In another example, the disclosure is directed to a computer-readablestorage medium comprising instructions that, when executed, cause aprogrammable processor to operate an IMD in accordance with a systemclock that comprises a low power oscillator clock included in the IMD,and periodically perform a calibration routine to calibrate the systemclock based on the reference clock, wherein the system clock iscontinuously powered and the reference clock is powered during thecalibration routine.

The details of one or more aspects of the disclosure are set forth inthe accompanying drawings and the description below. Other features,objects, and advantages of the disclosure will be apparent from thedescription and drawings, and from the claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a conceptual diagram illustrating an example therapy systemcomprising a leadless implantable medical device (IMD) that may be usedto monitor one or more physiological parameters of a patient and/orprovide therapy to the heart of a patient.

FIG. 2 is a conceptual diagram illustrating another example therapysystem comprising an IMD coupled to a plurality of leads that may beused to monitor one or more physiological parameters of a patient and/orprovide therapy to the heart of a patient.

FIG. 3 is a conceptual diagram illustrating the leadless IMD of FIG. 1in further detail.

FIG. 4 is a conceptual diagram further illustrating the IMD and leads ofthe system of FIG. 2 in conjunction with the heart.

FIG. 5 is a conceptual drawing illustrating the IMD of FIG. 2 coupled toa different configuration of implantable medical leads in conjunctionwith the heart.

FIG. 6 is a functional block diagram illustrating an exampleconfiguration of an IMD.

FIG. 7 is a functional block diagram illustrating another exampleconfiguration of an IMD.

FIG. 8 is a functional block diagram illustrating an exampleconfiguration of a clock calibrator included within the IMD of FIG. 6.

FIG. 9 is a block diagram of an example configuration of a clockcomparator of the clock calibrator of FIG. 8.

FIG. 10 is a block diagram of an example configuration of a clockadjuster of the clock calibrator of FIG. 8.

FIG. 11 is a flow diagram of an example method of performing acalibration routine with a delta-sigma loop to calibrate a system clockwithin the IMD of FIG. 6

FIG. 12 is a block diagram of an example external programmer thatfacilitates user communication with an IMD.

FIG. 13 is a block diagram illustrating an example system that includesan external device, such as a server, and one or more computing devicesthat are coupled to an IMD and programmer via a network.

DETAILED DESCRIPTION

In general, this disclosure describes techniques for periodicallyperforming a calibration routine to calibrate a low-power system clockwithin an implantable medical device (IMD) based on a high accuracyreference clock also included in the IMD. The low-power system clock ispowered continuously and controls operation of the IMD, and the highaccuracy reference clock is only powered on during the calibrationroutine to correct inaccuracies of the system clock.

The techniques include powering on the reference clock at the start ofthe calibration routine, determining a clock error of the system clockbased on a difference between the frequencies of the system clock andthe reference clock over a fixed number of clock cycles of the systemclock, adjusting a trim value of the system clock to compensate for theclock error, and disabling the reference clock at an end of thecalibration routine. In some examples, the calibration routine may beperformed with a delta-sigma loop, which includes integrating the clockerror over time to calculate a cumulative clock error of the systemclock, and adjusting the trim value of the system based on the magnitudeand sign of the cumulative clock error. Calibrating the system clockwith a delta-sigma loop reduces the clock error over time. This allowsaccurate adjustment of the system clock to compensate for errors due totrim resolution, circuit noise and temperature.

The techniques allow the use a low power oscillator to act as the systemclock for the IMD. A high accuracy oscillator may then be used as areference clock that is turned on periodically for short periods of timeto perform calibration to correct the inaccuracies of the system clock.As an example, the reference clock may be turned on for approximately2-3 seconds for each calibration period of approximately 15 minutes toperform the calibration routine. The techniques disclosed herein may beemployed within an IMD, such as an implantable pacemaker or animplantable leadless pacemaker, to reduce current drain by the clockingsystem of the IMD. In one example, the techniques may reduce totalclocking system current drain (including the system clock, the referenceclock, and the calibration circuitry) in an IMD to less than 60nanoamperes (nA).

Similar techniques described in this disclosure may be used to calibrateother clocks included in an IMD, such as a telemetry polling clock and atelemetry linking clock used to operate a telemetry module of the IMD.For example, the techniques may include periodically performing acalibration routine to calibrate a telemetry polling clock, according towhich the telemetry module monitors for a telemetry downlink. In someexamples, the telemetry polling clock and the system clock may besimultaneously calibrated based on the reference clock. In some cases,the clocks may be simultaneously calibrated with two separatedelta-sigma loops.

As another example, the techniques may include performing a calibrationroutine to calibrate a telemetry linking clock, according to which thetelemetry module performs a telemetry session. In this case, thereference clock is powered on during the telemetry session such that thetelemetry linking clock may be continuously calibrated based on thereference clock during the telemetry session. Performing telemetry with,e.g., an external programmer of the IMD, requires extremely highclocking accuracy. In some examples, the telemetry linking clock may becalibrated with another delta-sigma loop.

FIG. 1 is a conceptual diagram illustrating an example therapy system10A that may be used to monitor one or more physiological parameters ofpatient 14 and/or to provide therapy to heart 12 of patient 14. Therapysystem 10A includes an implantable medical device (IMD) 16A, which iscoupled to programmer 24. IMD 16A may be an implantable leadlesspacemaker that provides electrical signals to heart 12 via one or moreelectrodes (not shown in FIG. 1) on its outer housing. Additionally oralternatively, IMD 16A may sense electrical signals attendant to thedepolarization and repolarization of heart 12 via electrodes on itsouter housing. In some examples, IMD 16A provides pacing pulses to heart12 based on the electrical signals sensed within heart 12. Patient 14 isordinarily, but not necessarily, a human patient.

In the example of FIG. 1, IMD 16A is positioned wholly within heart 12with one end proximate to the apex of right ventricle 28 to provideright ventricular (RV) pacing. Although IMD 16A is shown within heart 12and proximate to the apex of right ventricle 28 in the example of FIG.1, IMD 16A may be positioned at any other location outside or withinheart 12. For example, IMD 16A may be positioned outside or within rightatrium 26, left atrium 36, and/or left ventricle 32, e.g., to provideright atrial, left atrial, and left ventricular pacing, respectively.Depending in the location of implant, IMD 16A may include otherstimulation functionalities. For example, IMD 16A may provideatrioventricular nodal stimulation, fat pad stimulation, vagalstimulation, or other types of neurostimulation. In other examples, IMD16A may be a monitor that senses one or more parameters of heart 12 andmay not provide any stimulation functionality. In some examples, system10A may include a plurality of leadless IMDs 16A, e.g., to providestimulation and/or sensing at a variety of locations.

IMD 16A includes a system clock (not shown in FIG. 1), according towhich it performs sensing and therapy delivery. In order to reducecurrent drain by the clocking system within IMD 16A, a low-poweroscillator may be selected as the system clock. Low-power oscillators,however, suffer from inaccuracies due to poor long-term stability,temperature characteristics, and trim resolution. According to thetechniques of this disclosure, IMD 16A includes calibration circuitrythat periodically performs a calibration routine to calibrate thelow-power system clock based on a high accuracy reference clock alsoincluded in IMD 16A. The low-power system clock may be poweredcontinuously to control operation of IMD 16A, and the high accuracyreference clock may be powered only during the calibration routine tocorrect inaccuracies of the system clock. In this way, the techniquesmay reduce total clocking system current drain (including the systemclock, the reference clock, and the calibration circuitry) in IMD 16A toless than 60 nA.

FIG. 1 further depicts programmer 24 in communication with IMD 16A. Insome examples, programmer 24 comprises a handheld computing device,computer workstation, or networked computing device. Programmer 24includes a user interface that presents information to and receivesinput from a user. It should be noted that the user may also interactwith programmer 24 remotely via a networked computing device.

A user, such as a physician, technician, surgeon, electrophysiologist,other clinician, or patient, interacts with programmer 24 to communicatewith IMD 16A. For example, the user may interact with programmer 24 toretrieve physiological or diagnostic information from IMD 16A. A usermay also interact with programmer 24 to program IMD 16A, e.g., selectvalues for operational parameters of the IMD 16A. For example, the usermay use programmer 24 to retrieve information from IMD 16A regarding therhythm of heart 12, trends therein over time, or arrhythmic episodes.

In some examples, the user of programmer 24 may receive an alert that amechanical sensing channel has been activated to identify cardiaccontractions in response to a detected failure of an electrical sensingchannel. The alert may include an indication of the type of failureand/or confirmation that the mechanical sensing channel is detectingcardiac contractions. The alert may include a visual indication on auser interface of programmer 24. Additionally or alternatively, thealert may include vibration and/or audible notification.

As another example, the user may use programmer 24 to retrieveinformation from IMD 16A regarding other sensed physiological parametersof patient 14 or information derived from sensed physiologicalparameters, such intracardiac or intravascular pressure, activity,posture, respiration, tissue perfusion, heart sounds, cardiacelectrogram (EGM), intracardiac impedance, or thoracic impedance. Insome examples, the user may use programmer 24 to retrieve informationfrom IMD 16A regarding the performance or integrity of IMD 16A or othercomponents of system 10A, or a power source of IMD 16A. As anotherexample, the user may interact with programmer 24 to program, e.g.,select parameters for, therapies provided by IMD 16A, such as pacingand, optionally, neurostimulation.

IMD 16A and programmer 24 may communicate via wireless communicationusing any techniques known in the art. Examples of communicationtechniques may include, for example, low frequency or radiofrequency(RF) telemetry, but other techniques are also contemplated. In someexamples, programmer 24 may include a programming head that may beplaced proximate to the patient's body near the IMD 16A implant site inorder to improve the quality or security of communication between IMD16A and programmer 24.

FIG. 2 is a conceptual diagram illustrating another example therapysystem 10B that may be used to monitor one or more physiologicalparameters of patient 14 and/or to provide therapy to heart 12 ofpatient 14. Therapy system 10B includes IMD 16B, which is coupled toleads 18, 20, and 22, and programmer 24. In one example, IMD 16B may bean implantable pacemaker that provides electrical signals to heart 12via electrodes coupled to one or more of leads 18, 20, and 22. Inaddition to pacing therapy, IMD 16B may deliver neurostimulationsignals. In some examples, IMD 16B may also include cardioversion and/ordefibrillation functionalities. In other examples, IMD 16B may notprovide any stimulation functionalities and, instead, may be a dedicatedmonitoring device. Patient 14 is ordinarily, but not necessarily, ahuman patient.

Leads 18, 20, 22 extend into the heart 12 of patient 14 to senseelectrical activity of heart 12 and/or deliver electrical stimulation toheart 12. In the example shown in FIG. 2, right ventricular (RV) lead 18extends through one or more veins (not shown), the superior vena cava(not shown), right atrium 26, and into right ventricle 28. RV lead 18may be used to deliver RV pacing to heart 12. Left ventricular (LV) lead20 extends through one or more veins, the vena cava, right atrium 26,and into the coronary sinus 30 to a region adjacent to the free wall ofleft ventricle 32 of heart 12. LV lead 20 may be used to deliver LVpacing to heart 12. Right atrial (RA) lead 22 extends through one ormore veins and the vena cava, and into the right atrium 26 of heart 12.RA lead 22 may be used to deliver RA pacing to heart 12.

In some examples, system 10B may additionally or alternatively includeone or more leads or lead segments (not shown in FIG. 2) that deploy oneor more electrodes within the vena cava or other vein, or within or nearthe aorta. Furthermore, in another example, system 10B may additionallyor alternatively include one or more additional intravenous orextravascular leads or lead segments that deploy one or more electrodesepicardially, e.g., near an epicardial fat pad, or proximate to thevagus nerve. In other examples, system 10B need not include one ofventricular leads 18 and 20.

IMD 16B may sense electrical signals attendant to the depolarization andrepolarization of heart 12 via electrodes (described in further detailwith respect to FIG. 4) coupled to at least one of the leads 18, 20, 22.In some examples, IMD 16B provides pacing pulses to heart 12 based onthe electrical signals sensed within heart 12. The configurations ofelectrodes used by IMD 16B for sensing and pacing may be unipolar orbipolar.

IMD 16B may also provide neurostimulation therapy, defibrillationtherapy and/or cardioversion therapy via electrodes located on at leastone of the leads 18, 20, 22. For example, IMD 16B may deliverdefibrillation therapy to heart 12 in the form of electrical pulses upondetecting ventricular fibrillation of ventricles 28 and 32. In someexamples, IMD 16B may be programmed to deliver a progression oftherapies, e.g., pulses with increasing energy levels, until afibrillation of heart 12 is stopped. As another example, IMD 16B maydeliver cardioversion or ATP in response to detecting ventriculartachycardia, such as tachycardia of ventricles 28 and 32.

IMD 16B includes a system clock (not shown in FIG. 2), according towhich it performs sensing and therapy delivery. In order to reducecurrent drain by the clocking system within IMD 16B, a low-poweroscillator may be selected as the system clock. Low-power oscillators,however, suffer from inaccuracies due to poor long-term stability,temperature characteristics, and trim resolution. According to thetechniques of this disclosure, IMD 16B includes calibration circuitrythat periodically performs a calibration routine to calibrate thelow-power system clock based on a high accuracy reference clock alsoincluded in IMD 16B. The low-power system clock may be poweredcontinuously to control operation of IMD 16B, and the high accuracyreference clock may be powered only during the calibration routine tocorrect inaccuracies of the system clock. In this way, the techniquesmay reduce total clocking system current drain (including the systemclock, the reference clock, and the calibration circuitry) in IMD 16B toless than 60 nA.

As described above with respect to IMD 16A of FIG. 1, programmer 24 mayalso be used to communicate with IMD 16B. In addition to the functionsdescribed with respect to IMD 16A of FIG. 1, a user may use programmer24 to retrieve information from IMD 16B regarding the performance orintegrity of leads 18, 20 and 22 and may interact with programmer 24 toprogram, e.g., select parameters for, any additional therapies providedby IMD 16B, such as cardioversion and/or defibrillation.

FIG. 3 is a conceptual diagram illustrating leadless IMD 16A of FIG. 1in further detail. In the example of FIG. 3, leadless IMD 16A includesfixation mechanism 70. Fixation mechanism 70 may anchor leadless IMD 16Ato a wall of heart 12. For example, fixation mechanism 70 may take theform of multiple tines that may be inserted into a wall of heart 12 tofix leadless IMD 16A at the apex of right ventricle 28. Alternatively,other structures of fixation mechanism 70, e.g., adhesive, sutures, orscrews may be utilized. In some examples, fixation mechanism isconductive and may be used as an electrode, e.g., to deliver therapeuticelectrical signals to heart 12 and/or sense intrinsic depolarizations ofheart 12.

Leadless IMD 16A may also include electrodes 72 and 74 at a tip of outerhousing 78. Electrodes 72 and 74 may be used to deliver therapeuticelectrical signals to heart 12 and/or sense intrinsic depolarizations ofheart 12. Electrodes 72 and 74 may be formed integrally with an outersurface of hermetically-sealed housing 78 of IMD 16A or otherwisecoupled to housing 78. In this manner, electrodes 72 and 74 may bereferred to as housing electrodes. In some examples, housing electrodes72 and 74 are defined by uninsulated portions of an outward facingportion of housing 78 of IMD 16A. Other division between insulated anduninsulated portions of housing 78 may be employed to define a differentnumber or configuration of housing electrodes. For example, in analternative configuration, IMD 16A may include a single housingelectrode that comprises substantially all of housing 78, and may beused in combination with an electrode formed by fixation mechanism 70for sensing and/or delivery of therapy.

Leadless IMD 16A also includes a clocking system (not shown in FIG. 3)that includes a system clock, a reference clock, and calibrationcircuitry. The system clock, according to which leadless IMD 16Aperforms sensing and therapy delivery, may be a low-power oscillatorthat suffers from inaccuracies due to poor long-term stability,temperature characteristics, and trim resolution. The reference clockmay be a high accuracy oscillator, such as a crystal oscillator, thatruns on a substantial amount of current, e.g., between 0.5 and 1microampere (μA). The calibration circuitry periodically performs acalibration routine to calibrate the system clock based on the referenceclock. The system clock may be powered continuously to control operationof leadless IMD 16A, but the reference clock may be powered only duringthe calibration routine to correct inaccuracies of the system clock.

The calibration circuitry may perform the calibration routine accordingto a calibration period. For example, the calibration circuit may poweron the reference clock for approximately 2-3 seconds for eachcalibration period of approximately 15 minutes to perform thecalibration routine. In this way, the total clocking system currentdrain (including the system clock, the reference clock, and thecalibration circuitry) in leadless IMD 16A may be reduced to less than60 nA.

The calibration circuitry performs the calibration routine by poweringon the reference clock at the start of the calibration routine,determining a clock error of the system clock based on a differencebetween the frequencies of the system clock and the reference clock overa fixed number of clock cycles of the system clock, adjusting a trimvalue of the system clock to compensate for the clock error, anddisabling the reference clock at an end of the calibration routine. Insome examples, the calibration circuitry may include a delta-sigma loopto perform the calibration routine by integrating the clock error overtime to calculate a cumulative clock error of the system clock, andadjusting the trim value of the system based on the magnitude and signof the cumulative clock error. Calibrating the system clock with adelta-sigma loop reduces the clock error over time. This allows accurateadjustment of the system clock to compensate for errors due to trimresolution, circuit noise and temperature. Leadless IMD 16A may includeadditional calibration circuitry to calibrate other clocks that may beincluded in leadless IMD 16A, such as a telemetry polling clock and atelemetry linking clock used to operate telemetry between leadless IMD16A and, e.g., programmer 24 of FIG. 1.

FIG. 4 is a conceptual diagram illustrating IMD 16B and leads 18, 20, 22of therapy system 10B of FIG. 2 in greater detail. Leads 18, 20, 22 maybe electrically coupled to a signal generator and a sensing module ofIMD 16B via connector block 34. In some examples, proximal ends of leads18, 20, 22 may include electrical contacts that electrically couple torespective electrical contacts within connector block 34 of IMD 16B. Insome examples, a single connector, e.g., an IS-4 or DF-4 connector, mayconnect multiple electrical contacts to connector block 34. In addition,in some examples, leads 18, 20, 22 may be mechanically coupled toconnector block 34 with the aid of set screws, connection pins, snapconnectors, or another suitable mechanical coupling mechanism.

Each of the leads 18, 20, 22 includes an elongated insulative lead body,which may carry a number of concentric coiled conductors separated fromone another by tubular insulative sheaths. Bipolar electrodes 40 and 42are located adjacent to a distal end of lead 18 in right ventricle 28.In addition, bipolar electrodes 44 and 46 are located adjacent to adistal end of lead 20 in left ventricle 32 and bipolar electrodes 48 and50 are located adjacent to a distal end of lead 22 in right atrium 26.In the illustrated example, there are no electrodes located in leftatrium 36. However, other examples may include electrodes in left atrium36.

Electrodes 40, 44, and 48 may take the form of ring electrodes, andelectrodes 42, 46, and 50 may take the form of extendable helix tipelectrodes mounted retractably within insulative electrode heads 52, 54,and 56, respectively. In some examples, one or more of electrodes 42,46, and 50 may take the form of pre-exposed helix tip electrodes. Inother examples, one or more of electrodes 42, 46, and 50 may take theform of small circular electrodes at the tip of a tined lead or otherfixation element. Leads 18, 20, 22 also include elongated electrodes 62,64, 66, respectively, which may take the form of a coil. Each of theelectrodes 40, 42, 44, 46, 48, 50, 62, 64, and 66 may be electricallycoupled to a respective one of the coiled conductors within the leadbody of its associated lead 18, 20, 22, and thereby coupled torespective ones of the electrical contacts on the proximal end of leads18, 20, 22.

In some examples, as illustrated in FIG. 4, IMD 16B includes one or morehousing electrodes, such as housing electrode 58, which may be formedintegrally with an outer surface of hermetically-sealed housing 60 ofIMD 16B or otherwise coupled to housing 60. In some examples, housingelectrode 58 is defined by an uninsulated portion of an outward facingportion of housing 60 of IMD 16B. Other division between insulated anduninsulated portions of housing 60 may be employed to define two or morehousing electrodes. In some examples, housing electrode 58 comprisessubstantially all of housing 60.

IMD 16B may sense electrical signals attendant to the depolarization andrepolarization of heart 12 via electrodes 40, 42, 44, 46, 48, 50, 58,62, 64, and 66. The electrical signals are conducted to IMD 16B from theelectrodes via conductors within the respective leads 18, 20, 22 or, inthe case of housing electrode 58, a conductor coupled to housingelectrode 58. IMD 16B may sense such electrical signals via any bipolarcombination of electrodes 40, 42, 44, 46, 48, 50, 58, 62, 64, and 66.Furthermore, any of the electrodes 40, 42, 44, 46, 48, 50, 58, 62, 64,and 66 may be used for unipolar sensing in combination with housingelectrode 58.

In some examples, IMD 16B delivers pacing pulses via bipolarcombinations of electrodes 40, 42, 44, 46, 48 and 50 to producedepolarization of cardiac tissue of heart 12. In some examples, IMD 16Bdelivers pacing pulses via any of electrodes 40, 42, 44, 46, 48 and 50in combination with housing electrode 58 in a unipolar configuration.

Furthermore, IMD 16B may deliver defibrillation pulses to heart 12 viaany combination of elongated electrodes 62, 64, 66, and housingelectrode 58. Electrodes 58, 62, 64, 66 may also be used to delivercardioversion pulses to heart 12. Electrodes 62, 64, 66 may befabricated from any suitable electrically conductive material, such as,but not limited to, platinum, platinum alloy or other materials known tobe usable in implantable defibrillation electrodes.

IMD 16B also includes a clocking system (not shown in FIG. 4) thatincludes a system clock, a reference clock, and calibration circuitry.The system clock, according to which IMD16B performs sensing and therapydelivery, may be a low-power oscillator that suffers from inaccuraciesdue to poor long-term stability, temperature characteristics, and trimresolution. The reference clock may be a high accuracy oscillator, suchas a crystal oscillator, that runs on a substantial amount of current,e.g., between 0.5 and 1 μA. The calibration circuitry periodicallyperforms a calibration routine to calibrate the system clock based onthe reference clock. The system clock may be powered continuously tocontrol operation of IMD 16B, but the reference clock may be poweredonly during the calibration routine to correct inaccuracies of thesystem clock.

The calibration circuitry may perform the calibration routine accordingto a calibration period. For example, the calibration circuit may poweron the reference clock for approximately 2-3 seconds for eachcalibration period of approximately 15 minutes to perform thecalibration routine. In this way, the total clocking system currentdrain (including the system clock, the reference clock, and thecalibration circuitry) in IMD 16B may be reduced to less than 60 nA.

The calibration circuitry performs the calibration routine by poweringon the reference clock at the start of the calibration routine,determining a clock error of the system clock based on a differencebetween the frequencies of the system clock and the reference clock overa fixed number of clock cycles of the system clock, adjusting a trimvalue of the system clock to compensate for the clock error, anddisabling the reference clock at an end of the calibration routine. Insome examples, the calibration circuitry may include a delta-sigma loopto perform the calibration routine by integrating the clock error overtime to calculate a cumulative clock error of the system clock, andadjusting the trim value of the system based on the magnitude and signof the cumulative clock error. Calibrating the system clock with adelta-sigma loop reduces the clock error over time. This allows accurateadjustment of the system clock to compensate for errors due to trimresolution, circuit noise and temperature. IMD 16B may includeadditional calibration circuitry to calibrate other clocks that may beincluded in IMD 16B, such as a telemetry polling clock and a telemetrylinking clock used to operate telemetry between IMD 16B and, e.g.,programmer 24 of FIG. 2.

The configuration of system 10B illustrated in FIGS. 2 and 4 is merelyone example. In other examples, a system may include percutaneous leads,epicardial leads and/or patch electrodes instead of or in addition tothe transvenous leads 18, 20, 22 illustrated in FIG. 2. Further, IMD 16Bneed not be implanted within patient 14. In examples in which IMD 16B isnot implanted in patient 14, IMD 16B may deliver defibrillation pulsesand other therapies to heart 12 via percutaneous leads that extendthrough the skin of patient 14 to a variety of positions within oroutside of heart 12.

In addition, in other examples, a system may include any suitable numberof leads coupled to IMD 16B, and each of the leads may extend to anylocation within or proximate to heart 12. For example, other examples ofsystems may include three transvenous leads located as illustrated inFIGS. 2 and 4, and an additional lead located within or proximate toleft atrium 36. Other examples of systems may include a single lead thatextends from IMD 16B into right atrium 26 or right ventricle 28, or twoleads that extend into a respective one of the right ventricle 26 andright atrium 26. An example of this type of system is shown in FIG. 5.Any electrodes located on these additional leads may be used in sensingand/or stimulation configurations.

FIG. 5 is a conceptual diagram illustrating another example system 10C,which is similar to system 10B of FIGS. 2 and 4, but includes two leads18, 22, rather than three leads. Leads 18, 22 are implanted within rightventricle 28 and right atrium 26, respectively. System 10C shown in FIG.5 may be useful for physiological sensing and/or providing pacing,cardioversion, or other therapies to heart 12.

As described with respect to IMD 16B of FIGS. 2 and 4, IMD 16C alsoincludes a clocking system (not shown in FIG. 5) that includes a systemclock, a reference clock, and calibration circuitry. The system clock,according to which leadless IMD16C performs sensing and therapydelivery, may be a low-power oscillator, and the reference clock may bea high accuracy oscillator. The calibration circuitry periodicallyperforms a calibration routine to calibrate the system clock based onthe reference clock. The system clock is powered continuously to controloperation of IMD 16C, but the reference clock may be powered only duringthe calibration routine to correct inaccuracies of the system clock.

FIG. 6 is a functional block diagram illustrating an exampleconfiguration of IMD 16, which may be 16A of FIGS. 1 and 3 or IMD 16B ofFIGS. 2, 4, and 5. In the example illustrated by FIG. 6, IMD 16 includesa processor 80, memory 82, signal generator 84, electrical sensingmodule 86, telemetry module 88, system clock 90, reference clock 92,clock calibrator 94A, and power source 98. Memory 82 may includecomputer-readable instructions that, when executed by processor 80,cause IMD 16 and processor 80 to perform various functions attributed toIMD 16 and processor 80 herein. Memory 82 may comprise acomputer-readable storage medium, including any volatile, non-volatile,magnetic, optical, or electrical media, such as a random access memory(RAM), read-only memory (ROM), non-volatile RAM (NVRAM),electrically-erasable programmable ROM (EEPROM), flash memory, or anyother digital or analog storage media.

Processor 80 may include any one or more of a microprocessor, acontroller, a digital signal processor (DSP), an application specificintegrated circuit (ASIC), a field-programmable gate array (FPGA), orequivalent discrete or integrated logic circuitry. In some examples,processor 80 may include multiple components, such as any combination ofone or more microprocessors, one or more controllers, one or more DSPs,one or more ASICs, or one or more FPGAs, as well as other discrete orintegrated logic circuitry. The functions attributed to processor 80 inthis disclosure may be embodied as software, firmware, hardware or anycombination thereof. IMD 16 also includes a sensing integrity module 90,as illustrated in FIG. 6, which may be implemented by processor 80,e.g., as a hardware component of processor 80, or a software componentexecuted by processor 80.

Processor 80 controls signal generator 84 to deliver stimulation therapyto heart 12 according to operational parameters or programs, which maybe stored in memory 82. For example, processor 80 may control signalgenerator 84 to deliver electrical pulses with the amplitudes, pulsewidths, frequency, or electrode polarities specified by the selected oneor more therapy programs.

Signal generator 84, as well as electrical sensing module 86, iselectrically coupled to electrodes of IMD 16 and/or leads coupled to IMD16. In the example of leadless IMD 16A of FIG. 3, signal generator 84and electrical sensing module 86 are coupled to electrodes 72 and 74,e.g., via conductors disposed within housing 78 of leadless IMD 16A. Inexamples in which fixation mechanism 70 functions as an electrode,signal generator 84 and electrical sensing module 86 may also be coupledto fixation mechanism 70, e.g., via a conductor disposed within housing78 of leadless IMD 16A. In the example of IMD 16B of FIG. 4, signalgenerator 84 and electrical sensing module 86 are coupled to electrodes40, 42, 44, 46, 48, 50, 58, 62, 64, and 66, e.g., via conductors of therespective lead 18, 20, 22, or, in the case of housing electrode 58, viaan electrical conductor disposed within housing 60 of IMD 16B.

In the example illustrated in FIG. 6, signal generator 84 is configuredto generate and deliver electrical stimulation therapy to heart 12. Forexample, signal generator 84 may deliver pacing, cardioversion,defibrillation, and/or neurostimulation therapy via at least a subset ofthe available electrodes. In some examples, signal generator 84 deliversone or more of these types of stimulation in the form of electricalpulses. In other examples, signal generator 84 may deliver one or moreof these types of stimulation in the form of other signals, such as sinewaves, square waves, or other substantially continuous time signals.

Signal generator 84 may include a switch module and processor 80 may usethe switch module to select, e.g., via a data/address bus, which of theavailable electrodes are used to deliver stimulation signals, e.g.,pacing, cardioversion, defibrillation, and/or neurostimulation signals.The switch module may include a switch array, switch matrix,multiplexer, or any other type of switching device suitable toselectively couple a signal to selected electrodes.

Electrical sensing module 86 monitors signals from at least a subset ofthe available electrodes in order to monitor electrical activity ofheart 12. Electrical sensing module 86 may also include a switch moduleto select which of the available electrodes are used to sense the heartactivity. In some examples, processor 80 may select the electrodes thatfunction as sense electrodes, i.e., select the sensing configuration,via the switch module within electrical sensing module 86, e.g., byproviding signals via a data/address bus.

In some examples, electrical sensing module 86 includes multipledetection channels, each of which may comprise an amplifier. Eachsensing channel may detect electrical activity in respective chambers ofheart 12, and may be configured to detect either R-waves or P-waves. Insome examples, electrical sensing module 86 or processor 80 may includean analog-to-digital converter for digitizing the signal received from asensing channel for electrogram (EGM) signal processing by processor 80.In response to the signals from processor 80, the switch module withinelectrical sensing module 86 may couple the outputs from the selectedelectrodes to one of the detection channels or the analog-to-digitalconverter.

During pacing, escape interval counters maintained by processor 80 maybe reset upon sensing of R-waves and P-waves with respective detectionchannels of electrical sensing module 86. Signal generator 84 mayinclude pacer output circuits that are coupled, e.g., selectively by aswitching module, to any combination of the available electrodesappropriate for delivery of a bipolar or unipolar pacing pulse to one ormore of the chambers of heart 12. Processor 80 may control signalgenerator 84 to deliver a pacing pulse to a chamber upon expiration ofan escape interval. Processor 80 may reset the escape interval countersupon the generation of pacing pulses by signal generator 84, ordetection of an intrinsic depolarization in a chamber, and therebycontrol the basic timing of cardiac pacing functions. The escapeinterval counters may include P-P, V-V, RV-LV, A-V, A-RV, or A-LVinterval counters, as examples. The value of the count present in theescape interval counters when reset by sensed R-waves and P-waves may beused by processor 80 to measure the durations of R-R intervals, P-Pintervals, P-R intervals and R-P intervals. Processor 80 may use thecount in the interval counters to detect heart rate, such as an atrialrate or ventricular rate.

Telemetry module 88 includes any suitable hardware, firmware, softwareor any combination thereof for communicating with another device, suchas programmer 24 (FIGS. 1 and 2). Under the control of processor 80,telemetry module 88 may receive downlink telemetry from and send uplinktelemetry to programmer 24 with the aid of an antenna, which may beinternal and/or external. Processor 80 may provide the data to beuplinked to programmer 24 and receive downlinked data from programmer 24via an address/data bus. In some examples, telemetry module 88 mayprovide received data to processor 80 via a multiplexer.

The clocking system of IMD 16 includes system clock 90, reference clock92, and clock calibrator 94A. Each of the clocks described hereincomprise oscillators that may operate at different frequencies withdifferent accuracies and different power requirements. IMD 16 mayrequire an extremely small housing form factor, especially in the caseof leadless IMD 16A of FIGS. 1 and 3. For example, leadless IMD 16 mayhave a form factor of less than 1 cubic centimeter. Due to the smallform factor requirements, IMD 16 may only be able to accommodate a smallbattery canister such that current drain within IMD 16 must by extremelylow. One aspect of reducing power in IMD 16 is to minimize current drainby the clocking system.

In some examples, the clocking system of IMD 16 may include additionalclocks not shown in FIG. 6, e.g., a telemetry polling clock, a telemetrylinking clock, a CPU clock, and a rate limit clock. A majority of theclocks within the clocking system may be able to operate at a very lowduty cycle to minimize power. For example, these clocks may be turned ononly when needed and shut down with as close to zero current as possiblefor the remainder of the time. Since these clocks are powered off mostof the time, the average current for the clocks is typically very loweven if the current drain required to operate the given clocks isrelatively high.

A minimum of one clock, however, must remain continuously enabled togate sensing and therapy delivery, and to enable other features atcertain times. Historically, a high accuracy oscillator, such as acrystal oscillator, has been used as the system clock as it provides ahigh degree of accuracy (+/−0.01%) at a moderately low current drain. Inorder to further reduce current drain of the clocking system, alow-power oscillator may be selected as the system clock. Low-poweroscillators, however, suffer from inaccuracies due to poor long-termstability, temperature characteristics, and trim resolution.

In accordance with the techniques described herein, system clock 90 is alow-power oscillator that is powered continuously to control operationof IMD 16. Clock calibrator 94A periodically performs a calibrationroutine to calibrate system clock 90 based on reference clock 92.Reference clock 92 is a high accuracy oscillator, such as a crystaloscillator, that is only powered on during the calibration routine tocorrect inaccuracies of system clock 90. In some examples, clockcalibrator 94A may include a delta-sigma loop to perform the calibrationroutine. In this case, clock calibrator 94A uses the delta-sigma loop tozero out clock error of system clock 90 in the time-domain, not thefrequency domain.

Clock calibrator 94A may perform the calibration routine according to acalibration period, Tcal. In some cases, the calibration period may beset equal to 3.75 minutes, 7.5 minutes, 15 minutes, 30 minutes or 60minutes. For example, clock calibrator 94A may power on reference clock92 for approximately 2-3 seconds for each calibration period ofapproximately 15 minutes to perform the calibration routine. Shortercalibration periods improve accuracy of system clock 90, and longercalibration periods reduce power usage. In some cases, the calibrationperiod may be adjusted to a shorter time period when the frequency ofsystem clock 90 is changing, the temperature is changing, or higherclock accuracy is desired. The calibration routine may be similarlyadjusted to a longer time period when the frequency of system clock 90is stable, the temperature is stable, or less clock accuracy is needed.

Clock calibrator 94A allows a low-power oscillator that is capable ofmeeting short-term accuracy requirements (+/−1%) to be used as systemclock 90, and then periodically powers on a high accuracy oscillator,reference clock 92, to calibrate system clock 90. In this way, clockcalibrator 94A is able to improve the long term accuracy of system clock90 to be comparable to that of reference clock 92. In some examples,clock calibrator 94A is capable of achieving an accuracy goal of keepingtrack of time to within 15 minutes over a year, i.e., approximately+/−28 ppm (+/−0.0028%). This high level of accuracy is desired whenprogramming therapies to be delivered at specific times of the day or toset a time stamp for when specific events as sensed. Moreover, clockcalibrator 94A is further capable of achieving a power goal of reducingtotal clocking system current drain to less than 60 nA.

Clock calibrator 94A performs the calibration routine by powering onreference clock 92 at the start of the calibration routine, determininga clock error of system clock 90 based on a difference between thefrequencies of system clock 90 and reference clock 92 over a fixednumber of clock cycles of system clock 90, adjusting a trim value ofsystem clock 90 to compensate for the clock error, and disablingreference clock 92 at an end of the calibration routine. In someexamples, clock calibrator 94A may perform the frequency comparison andtrim value adjustment once during the calibration routine. In otherexamples, clock calibrator 94A may perform the frequency comparison andtrim value adjustment multiple times during the calibration routine. Insome cases, clock calibrator 94A may perform the comparison andadjustment steps a fixed number of times or may continue until a desiredaccuracy of system clock 90 is reached.

In some examples, clock calibrator 94A uses a calibration routine thatadjusts the trim value of system clock 90 by adjusting the trim value byone bit at a time. By only adjusting the trim value by one bit, thiscalibration routine may respond slowly to a change in frequency ofsystem clock 90 due to temperature, voltage, and drift. In otherexamples, clock calibrator 94A uses a calibration routine that adjuststhe trim value of system clock 90 by adjusting the trim value by morethan one bit at a time. This calibration routine would allow systemclock 90 to be adjusted more quickly in response to a change infrequency. In either case, the trim value may be incremented ordecremented based on whether the clock error indicates that thefrequency of system clock 90 is higher or lower than the frequency ofreference clock 92.

In another example, clock calibrator 94A may perform the calibrationroutine with a delta-sigma loop by determining a clock error of systemclock 90 based on a difference between the frequencies of system clock90 and reference clock 92 over a fixed number of clock cycles of systemclock 90 (i.e., the delta portion of the delta-sigma loop), integratingthe clock error over time to calculate a cumulative clock error ofsystem clock 90 (i.e., the sigma portion of the delta-sigma loop), andadjusting a trim value of system clock 90 to compensate for thecumulative clock error. Calibrating the system clock with a delta-sigmaloop reduces the clock error over time. This allows accurate adjustmentof the system clock to compensate for errors due to trim resolution,circuit noise and temperature. In this case, the trim value may beincreased or decreased based on the magnitude and sign of the cumulativeclock error.

As discussed above, reference clock 92 is a high accuracy oscillator,such as a crystal oscillator, that is enabled as necessary to calibratesystem clock 90. Reference clock 92 may also be enabled as necessary tocalibrate other clocks in the clocking system of IMD 16 (not shown inFIG. 6). Without any trimming or calibration, the accuracy of referenceclock 92 may be about +/−50-100 ppm (+/−0.005 to 0.01%). The accuracy ofreference clock 92 can be further improved by measuring clock errorassociated with reference clock 92 at a production test, storing acalibration factor for reference clock 92 into memory 82, andcompensating for the clock error when determining time of day. Thisallows an accuracy of less than +/−5-10 minutes per year or +/−10-20 ppm(+/−0.001 to 0.002%) to be achieved for reference clock 92.

In some examples, reference clock 92 may operate at approximately 32,768hertz (Hz) and use about 0.5 μA to 1 μA when active. In other examples,reference clock 92 may operate at different frequencies and withdifferent power requirements. Start up time for reference clock 92 istypically slow, e.g., 0.5 to 1 second. Average current drain forreference clock 92 is proportional to the operating current multipliedby its duty cycle (percentage of time reference clock 92 is active). Forexample, if the duty cycle of reference clock 92 is less than 10%, thecurrent drain associated with reference clock 92 may be reduced by afactor of 10. In accordance with the techniques disclosed herein, clockcalibrator 94A may power on reference clock 90 at the start of thecalibration routine. Upon power up, reference clock 90 is allowed tostabilize for a period of about 1 second and then run simultaneouslywith system clock 90 for a fixed number of clock cycles of system clock90, equivalent to approximately 1-2 seconds. Clock calibrator 94Adetermines the clock error of system clock 90 based on the differencebetween the frequencies of system clock 90 and reference clock 92 overthe fixed number of clock cycles. Clock calibrator 94A then disablesreference clock 92 at the end of the calibration routine. If, forexample, reference clock 92 is periodically enabled according to acalibration period, Tcal, equal to 15 minutes, the duty cycle ofreference clock 92 is equal to 3 seconds divided by 15 minutes, or0.333%, such that the average current drain associated with referenceclock 92 is reduced from about 1 μA to about 3.3 nA.

As discussed above, system clock 90 may comprise a low-power oscillatorthat is continuously enabled to operate IMD 16. In some examples, systemclock 90 may operate at approximately the same frequency as referenceclock 92. For example, system clock 90 may be a 32 kilohertz (kHz)low-power oscillator. In other example, system clock 90 and referenceclock 90 may operate a different frequencies. Although system clock 90suffers from inaccuracies, it may be capable of being trimmed with fineenough resolution to achieve short term accuracy requirements (+/−1%).System clock 90 may also have low enough jitter, temperaturecoefficient, and supply voltage sensitivity that it can maintain theshort term accuracy requirement over the calibration period. The finerthe resolution of the trim, the more accurately system clock 90 can beadjusted. In cases where system clock 90 has a fine resolution trim,clock calibrator 94A may perform a less complex calibration routine thatadjusts the trim value of system clock 90 by one or more bits at a time.In other cases, clock calibrator 94A may perform a calibration routinewith a delta-sigma loop to average out the trim resolution based clockerror over time.

System clock 90 may comprise an extremely low power digitally trimmedoscillator, and may be built using an adjustable current, voltage,resistor, capacitor, or number of stages to allow a delay time or clockperiod of system clock 90 to be adjusted. As one example, system clock90 may include a digital storage element that sets a value for aprogrammable value resistor used to generate a bias current. The biascurrent can be used to adjust delay time of two delay elements. The twodelay elements may be configured such that one capacitor in one delayelement is being charged up with current, while the other capacitor inthe other delay element is being cleared. The two delay elements maycreate approximately equal delays that are used to define the low andhigh periods of system clock 90. In accordance with this example, systemclock 90 may operate at 32 kHz with a current drain of about 50-100 nA.In other examples, system clock 90 may operate at different frequenciesand with different power requirements.

To operate IMD 16, a short term accuracy of approximately +/−1% may besufficient to meet accuracy requirements over a heart rate pacing cycleor other short term timing requirements. Tighter accuracy ofapproximately +/−0.35% may be needed over the length of a day to enableor disable sensing and therapies at certain times of the day with anaccuracy of approximately +/−5 minutes per day. Moreover, an accuracyequivalent to that of reference clock 92 is required to achieve longterm accuracy requirements of keeping track of time to within 5-10minutes per year.

In accordance with the techniques described herein, the short termaccuracy requirements may be achieved by periodically performing acalibration routine to calibrate system clock 90 based on referenceclock 92. Clock calibrator 94A periodically determines a clock error ofsystem clock 90 based on a difference in frequencies between systemclock 90 and reference clock 92 over a fixed number of clock cycles ofsystem clock 90. Clock calibrator 94A then adjusts a trim value ofsystem clock 90 to compensate for the clock error. In the example ofclock calibrator 94A using a calibration routine that adjusts the trimvalue of system clock 90 by one or more bits at a time, system clock 90must have a fine resolution trim and clock calibrator 94A may performthe calibration routine more frequently to achieve the accuracyrequirements.

In the example of clock calibrator 94A performing the calibrationroutine with a delta-sigma loop, clock calibrator 94A integrates theclock error over time to calculate a cumulative clock error of systemclock 90, and adjusts a trim value of system clock 90 based on themagnitude and sign of the cumulative error until the frequency of systemclock 90 is close enough to a target value equal to the frequency ofreference clock 92. The medium and long term accuracy requirements maybe achieved by keeping track of the average frequency of system clock90, and adjusting the trim value of system clock 90 to set it tofrequencies above and below the target value to maintain an averagefrequency equal to the target value.

FIG. 7 is a functional block diagram illustrating an exampleconfiguration of IMD 116, which may correspond to IMD 16A of FIGS. 1 and3 or IMD 16B of FIGS. 2, 4, and 5. IMD 116 may operate substantiallysimilar to IMD 16 of FIG. 6 to perform sensing and therapy delivery toorgans or tissue. In the example illustrated by FIG. 7, IMD 116 includesprocessor 80, memory 82, signal generator 84, electrical sensing module86, telemetry module 88 with a telemetry polling clock 100 and atelemetry linking clock 102, system clock 90, reference clock 92, aclock calibrator 94B, and power source 98.

IMD 116 may be substantially similar to IMD 16 of FIG. 6 but theclocking system of IMD 116 includes system clock 90, reference clock 92,telemetry polling clock 100, telemetry linking clock 102, and clockcalibrator 94B. Telemetry module 88 monitors for a telemetry downlinkaccording to telemetry polling clock 100. Once a telemetry downlink ispresent, telemetry module 88 performs a telemetry session tocommunication with, e.g., programmer 24 of FIG. 1 according to telemetrylinking clock 102. Clock calibrator 94B may perform substantiallysimilar to clock calibrator 94A of FIG. 6 to perform calibrationroutines with multiple delta-sigma loops to calibrate system clock 90and telemetry polling clock 100 and/or telemetry linking clock 102 basedon reference clock 92.

Clock calibrator 94B may perform the same type of calibration routine tocalibrate all three of the clocks based on reference clock 92. In othercases, clock calibrator 94B may perform different types of calibrationroutines to calibrate each of the clocks based on reference clock 92. Insome examples, clock calibrator 94B may perform a calibration routinewith one or more delta-sigma loops. For example, clock calibrator 94Bmay include three separate delta-sigma loops, one for each clock to becalibrated. Clock calibrator 94B may periodically use two of thedelta-sigma loops simultaneously to calibrate system clock 90 andtelemetry polling clock 100 based on reference clock 92 according to thesame calibration period. Clock calibrator 94B may use the thirddelta-sigma loop only during a telemetry session to continuouslycalibrate telemetry linking clock 102 based on reference clock 92.

In accordance with the techniques described herein, telemetry pollingclock 100 may comprise a low-power oscillator that is periodicallypowered to enable and disable a receiver of telemetry module 88 tomonitor for the presence of a telemetry downlink. Clock calibrator 94Bmay periodically perform a calibration routine to simultaneouslycalibrate system clock 90 and telemetry polling clock 100 according tothe same calibration period. For example, clock calibrator 94B mayperform the calibration routine using two separate delta-sigma loops todetermine clock errors for both system clock 90 and telemetry pollingclock 100 over a fixed number of clock cycles of system clock 90 andtelemetry polling clock 100, respectively, integrate the clock errorsover time to calculate cumulative clock errors, and adjust a trim valueof each clock to compensate for the respective cumulative clock errors.

Moreover, telemetry linking clock 102 may comprise a low-power, highfrequency oscillator that is powered continuously during a telemetrysession to enable telemetry uplink and downlink once a telemetrydownlink is present. Clock calibrator 94B periodically calibrates systemclock 90 according to the calibration period, and may also periodicallycalibrate telemetry polling clock 100 according to the same calibrationperiod. In addition, clock calibrator 94B may continuously perform acalibration routine to calibrate telemetry linking clock 102 based onreference clock 92 during the telemetry session. Clock calibrator 94Bmay power on reference clock 92 at a start of a telemetry session. Clockcalibrator 94B may then continuously perform the calibration routineusing a third delta-sigma loop during the telemetry session to determinea clock error of telemetry linking clock 102 over a fixed number ofclock cycles of the telemetry linking clock 102, integrate the clockerror over time to calculate a cumulative clock error, and adjust a trimvalue of telemetry linking clock 102 to compensate for the cumulativeclock error. At the end of the telemetry session, clock calibrator 94Bmay disable reference clock 92. The calibration routine for telemetrylinking clock 102 may be performed continuously during the telemetrysession because extremely high clocking accuracy is required to performtelemetry.

As discussed above, telemetry polling clock 100 may comprise a low-poweroscillator that is periodically powered to monitor for a telemetrydownlink. For example, telemetry polling clock 100 may be enable anddisable the telemetry receiver approximately 4 times per second to checkfor the presence of a telemetry downlink. In some examples, telemetrypolling clock 100 may operate at 50 kHz with a current drain of 200 nA.However, telemetry polling clock 100 may only be enabled for 0.5-2milliseconds (ms) so its duty cycle is less than 0.8%. Therefore, theaverage current associated with telemetry polling clock 100 is less than2 nA. In other examples, telemetry polling clock 100 may operate atdifferent frequencies and with different power requirements.

In accordance with the techniques described herein, telemetry pollingclock 100 is periodically calibrated whenever system clock 90 iscalibrated. The long term accuracy requirements for system clock 90,discussed above, are not as important for telemetry polling clock 100,and therefore a simpler method may be used to determine a trim value oftelemetry polling clock 100. In this case, clock calibrator 94Bdetermines a clock error of telemetry polling clock 100 based on adifference between frequencies of telemetry polling clock 100 andreference clock 92 over a fixed number of clock cycles of telemetrypolling clock 100 during each calibration routine. The fixed number ofclock cycles for the frequency comparison may be equal to 510 clockcycles of telemetry polling clock 100 operating at 50 kHz or 334 clockcycles of reference clock 92 operating at 32,768 Hz, which isapproximately 10.2 ms. During each calibration routine, clock calibrator94B may increment or decrement the trim value of telemetry polling clock100 by one bit to keep the frequency of telemetry polling clock 100within +/−0.5% of the target value of 50 kHz. In this example, aseparate telemetry polling clock 100 is used to control monitoring for atelemetry downlink because the desired frequency for this function is 50kHz. In another example, however, system clock 90 may be used to controlmonitoring for a telemetry downlink if a frequency of 32 kHz is desired.

As discussed above, telemetry linking clock 102 may comprise alow-power, high frequency oscillator that is powered continuously duringa telemetry session to enable telemetry uplink and downlink once atelemetry downlink is present. For example, telemetry linking clock 102may operate at 2.8 MHz with a current drain of approximately 3 μA. Inother examples, telemetry linking clock 102 may operate at differentfrequencies and with different power requirements. The clock accuracyrequirements for telemetry uplink are quite tight (approximately+/−0.05% to +/−0.1%). Therefore, in accordance with the techniquesdescribed herein, reference clock 92 is continuously enabled during thetelemetry session and telemetry linking clock 102 is continuouslycalibrated based on reference clock 92 during the telemetry session.

More specifically, clock calibrator 94B may continuously determine aclock error of telemetry linking clock 102 based on a difference betweenfrequencies of telemetry linking clock 102 and reference clock 92 over afixed number of clock cycles of telemetry linking clock 102 during thetelemetry session. The fixed number of clock cycles for the frequencycomparison may be equal to 1880 clock cycles of telemetry linking clock102 operating at 2.8 MHz or 22 clock cycles of reference clock 92operating at 32,768 Hz, which is approximately 671.4 μs. If telemetrylinking clock 102 is off by +/−1 clock cycle in error, the trim value oftelemetry linking clock 102 is left alone. If telemetry linking clock102 is off by between +/−2 and +/−27 clock cycles in error, the trimvalue of telemetry linking clock 102 is adjusted up or down one bit, andthen a new frequency comparison is performed. If telemetry linking clock102 is off by more than +/−28 clock cycles in error, the trim value oftelemetry linking clock 102 may be adjusted up or down by a larger step.The trim resolution for telemetry linking clock 102 is nominally 0.05%so moving the trim value by one bit results in a change in the measurednumber of clock cycles by +/−1 over the fixed number of clock cyclesequivalent to 671.4 μs.

In some examples, telemetry linking clock 102 may also be used as a CPUclock to execute instructions. The CPU clock may be enabled once perpacing cycle, or approximately once per second, and remains on for 1-2ms. Based on this duty cycle, the average current drain of the CPU clockis about 5 nA. The accuracy requirement for executing instructions isnot particularly critical. In other examples, once a telemetry downlinkis present, telemetry linking clock 102 may be is turned on, divideddown, and used in place of telemetry polling clock 100.

The clocking systems of IMD 16 of FIG. 6 and IMD 116 of FIG. 7 may alsoinclude a rate limit clock (not shown) that is used as an independentcheck on heart rate pacing to ensure that a system malfunction did notcause IMD 16 or IMD 116 to pace at an abnormally high rate. In the eventthat system clock 90 was operating at an abnormally high frequency, therate limit clock would limit the pacing rate to less than 185 bpm. Therate limit clock is not calibrated based on reference clock 92 inaccordance with the techniques described herein. The rate limit clock isalso not used for any other functions of IMD 16 or IMD 116. The ratelimit clock is continuously enabled and operates at a frequency ofapproximately 3.2 kHz to minimize current drain.

FIG. 8 is a functional block diagram illustrating an exampleconfiguration of clock calibrator 94A included within IMD 16 of FIG. 6.In the example illustrated by FIG. 8, clock calibrator 94A includes acontroller 103 and a delta-sigma loop to calibrate system clock 90 basedon reference clock 92. Specifically, the delta-sigma loop includes aclock comparator 104 as the delta portion and a clock adjuster 106 asthe sigma portion. System clock 90 and reference clock 92 of IMD 16 arealso illustrated in FIG. 8 for purposes of describing the delta-sigmaloop. In other example configurations of clock calibrator 94A may notinclude the delta-sigma loop. In those cases, clock calibrator 94A maysimply perform the frequency comparison between system clock 90 andreference clock 92 and then increment or decrement the trim value ofsystem clock 90 by one or more bits.

Clock calibrator 94A periodically performs the calibration routine withthe delta-sigma loop to calibrate system clock 90 based on referenceclock 92 according to a calibration period. For example, the calibrationperiod, Tcal, may be set equal to 3.75 minutes, 7.5 minutes, 15 minutes,30 minutes, or 60 minutes. Controller 103 may monitor an amount of timesince performing the last calibration routine to determine whether thecalibration period has elapsed.

Once the calibration period has elapsed, clock calibrator 94A canperform the calibration routine. At the start of the calibrationroutine, controller 103 powers on reference clock 92. After it ispowered on, reference clock 92 may be allowed to stabilize forapproximately 1 second. System clock 90 and reference clock 92 may thenrun simultaneously over a fixed number of clock cycles of system clock90. Clock comparator 104 receives the clock signals from system clock 90and reference clock 92 (Ref Clk) during the calibration routine. Clockcomparator 104 then determines a clock error of system clock 90 based ona difference between frequencies of system clock 90 and reference clock92 over the fixed number of clock cycles. For example, clock comparator104 may include a system counter clocked by system clock 90 and areference counter clocked by reference clock 92 such that the differencebetween the counters over the fixed number of clock cycles of systemclock 90 is indicative of the clock error.

Clock adjuster 106 integrates the clock error determined by clockcomparator 104 over time to calculate a cumulative clock error of systemclock 90. Clock adjuster 106 then adjusts a trim value of system clock90 to compensate for the cumulative clock error. For example, clockadjuster 106 may increase or decrease the trim value of system clock 90based on the magnitude and sign of the cumulative clock error. Thedelta-sigma loop, including clock comparator 104 and clock adjuster 106,reduces the clock error of system clock 90 over time, which allowsaccurate adjustment of system clock 90 to compensate for errors due totrim resolution, circuit noise and temperature. At the end of thecalibration routine, controller 103 disables reference clock 92.Controller 103 may return to monitoring the calibration period todetermine when clock calibrator 94A should perform the next calibrationroutine. In some examples, clock calibrator 94A may perform thefrequency comparison and trim value adjustment multiple times during thecalibration routine until a desired accuracy of system clock 90 has beenreached.

In another example, clock calibrator 94B of FIG. 7 may also include acontroller and the delta-sigma loop to calibrate system clock 90. Inaddition, clock calibrator 94B may include a second delta-sigma loop tocalibrate telemetry polling clock 100, and a third delta-sigma loop tocalibrate telemetry linking clock 102. The second and third delta-sigmaloops may operate substantially similar to the delta-sigma loop forcalibrating system clock 90.

In the case of telemetry polling clock 100, clock calibrator 94B mayinclude first and second delta-sigma loops, the first for calibratingsystem clock 90, as illustrated in FIG. 8, and the second forcalibrating telemetry polling clock 100. In this example, clockcalibrator 94B may periodically perform a calibration routine tosimultaneously calibrate system clock 90 and telemetry polling clock 100according to the same calibration period. Clock calibrator 94B mayperform the calibration routine using both delta-sigma loops todetermine clock errors for both system clock 90 and telemetry pollingclock 100 over a fixed number of clock cycles of the respective clocks,integrate the clock errors over time to calculate cumulative clockerrors, and adjust a trim value of each clock to compensate for therespective cumulative clock errors.

In the case of telemetry linking clock 102, clock calibrator 94B mayinclude the third delta-sigma loop for continuously calibratingtelemetry linking clock 102 during a telemetry session. In this example,clock calibrator 94B may continuously perform a calibration routine tocalibrate telemetry linking clock 102 based on reference clock 92 duringthe telemetry session. Clock calibrator 94B may power on reference clock92 at a start of a telemetry session. Clock calibrator 94B may thencontinuously perform the calibration routine during the telemetrysession to determine a clock error of telemetry linking clock 102 over afixed number of clock cycles of telemetry linking clock 102, integratethe clock error over time to calculate a cumulative clock error, andadjust a trim value of telemetry linking clock 102 to compensate for thecumulative clock error. At the end of the telemetry session, clockcalibrator 94B may disable reference clock 92.

FIG. 9 is a block diagram of an example configuration of clockcomparator 104 of clock calibrator 94A of FIG. 8. In the exampleillustrated by FIG. 9, clock comparator 104 includes a system clockcounter 108, a reference clock counter 110, and a storage element 112.The system clock counter 108 is clocked by system clock 90 (Sys Clk) andreference clock counter 110 is clocked by reference clock 92 (Ref Clk).Both system clock counter 108 and reference clock counter 110 count thenumber of clock cycles over a fixed number of clock cycles of systemclock 90. Clock comparator 104 then determines a clock error of systemclock 90 based on the difference between the values of system clockcounter 108 and reference clock counter 110 over the fixed number ofclock cycles.

In some examples, the fixed number of clock cycles, Ncount, may be equalto 2¹⁴, 2¹⁵, or 2¹⁶. An Ncount of 2¹⁵, or 32,768 clock cycles, isequivalent to the number of clock cycles reference clock 92 operating at32,768 Hz should be able to perform in 1 second. In other examples, thefixed number of clock cycles may be set equal to any constant valuelarge enough to enable clock comparator 104 get an accurate measurementof the frequency difference between system clock 90 and reference clock92.

At the start of the calibration routine, system clock counter 108 andreference clock counter 110 are both set equal to the fixed number ofclock cycles, Ncount. System clock counter 108 receives a clock signalfrom system clock 90 (Sys Clk) and decrements by one count for eachclock cycle of system clock 90. In a similar fashion, reference clockcounter 110 receives a clock signal from reference clock 92 (Ref Clk)and decrements by one count for each clock cycle of reference clock 92.

System clock counter 108 continues to decrement according to systemclock 90 until system clock counter 108 reaches zero. Once system clockcounter 108 reaches zero, system clock counter 108 notifies system clockcounter 108 and storage element 112 that it is done counting. Referenceclock counter 110 continues to decrement according to reference clock 92until reference clock counter 110 receives the done notification fromsystem clock counter 108. Upon receiving the done notification,reference clock counter 110 stops at a reference count value. Thereference count value is equal to the difference between the value ofsystem clock counter 108 (i.e., zero) and reference clock counter 110(i.e., the reference count value) over the fixed number of clock cycles.Therefore, the reference count value is indicative of the clock error ofsystem clock 90.

Storage element 112 synchronizes the clock error of system clock 90before passing the clock error to clock adjuster 106 (Sys Clk Error). Insome examples, storage element 112 may comprise a latch. The finaloutput of clock comparator 104 may be represented by the equation: SysClk Error=−(Tref−Tsys)*(Ncount/Tref), where Tref is equal to thetransfer function of reference clock 92, Tsys is equal to the transferfunction of system clock 90, and Ncount is equal to the fixed number ofclock cycles of counters 108 and 110.

In the example described above, system clock counter 108 and referenceclock counter are set equal to the same fixed number of clock cycles,Ncount, because system clock 90 and reference clock 92 are assumed to beoperating at approximately the same frequency of 32 kHz. In otherexamples system clock 90 and reference clock 92 may be operating atdifferent frequencies. In that case, system clock counter 108 andreference clock counter 110 may be used in a substantially similarfashion, but one of the counters will initially be set equal to adifferent value. For example, if system clock 90 is operating at adifferent frequency, reference clock counter 110 may scale the fixednumber of clock cycles by the percentage difference between theoperating frequencies of reference clock 92 and system clock 90. As afurther example, clock calibrator 94B performs a calibration routine tocalibrate telemetry polling clock 100 operating at 50 kHz based onreference clock 92 operating at 32,768 Hz. In the case of telemetrypolling clock 100, a polling clock counter may be set equal to Ncountand a reference clock counter may be set equal to 65.5% of Ncount, where32,768 Hz/50 kHz=0.655. A similar Ncount adjustment would be necessarywhen calibrating telemetry linking clock 102 operating at 2.8 MHz basedon reference clock 92 operating at 32,768 Hz.

FIG. 10 is a block diagram of an example configuration of clock adjuster106 of clock calibrator 94A of FIG. 8. In the example illustrated byFIG. 10, clock adjuster 106 includes a reference calibration factor 104,gain 115, summer 118, integrator 120, and gain 121. Referencecalibration factor 114 is a known value based on a measured clock errorof reference clock 92 during a production test and used to compensatefor clock error of reference clock 92. Reference calibration factor 114may be stored directly in clock adjuster 106, or stored in memory 82 ofIMD 16 for use by clock adjuster 106. In accordance with the techniquesdescribed herein, clock adjuster 106 takes reference calibration factor114 into account when compensating for the clock error of system clock90 based on reference clock 92.

Clock adjuster 106 receives the clock error of system clock 90 (Sys ClkError) from clock comparator 104. Gain 115 performs an arithmetic shiftof the clock error value to up-scale the clock error value so summer 118can add or subtract reference calibration factor 114 to the clock errorvalue. Gain may also perform the arithmetic shift to up-scale the clockerror value to compensate for varying values of Ncount. In someexamples, gain 115 may up-scale the clock error value by 2¹⁹/Ncount.Summer 118 combines the clock error with reference calibration factor114 to ensure that all the clock error due to inaccuracies in bothsystem clock 90 and reference clock 92 is compensated. Integrator 120then integrates the total clock error over time to calculate acumulative clock error of system clock 90. In some examples, integrator120 may have an integration function of Z⁻¹ or 1/(z−1). In otherexamples, integrator 120 may have a different integration function. Gain121 may down-scale the cumulative clock error value from integrator 120to cancel out the effects of the up-scaling by gain 115 and to reducethe overall gain of the delta-sigma loop. In some examples, gain 121 maydown-scale the cumulative clock error value by 2²²/2³⁴.

Clock adjuster 106 then outputs a trim value (Sys Clk Trim) for systemclock 90 to compensate for the cumulative clock error. For example,clock adjuster 106 may increase or decrease the trim value of systemclock 90 based on the magnitude and sign of the cumulative clock error.The delta-sigma loop of clock calibrator 94A reduces the clock errorover time, which allows accurate adjustment of the system clock tocompensate for errors due to trim resolution, circuit noise andtemperature.

The transfer function of clock adjuster 106 may be represented by:Sys Clk Trim=(gain 115)*(integrator 120)*(gain 121)=(2¹⁹/Ncount)*(1/(z−1))*(2²²/2³⁴),such that Sys Clk Trim=2⁷/(Ncount*(z−1)).

As described above, system clock 90 may include a digital storageelement that sets a value for a programmable value resistor used togenerate a bias current that is then used to adjust delay time of twodelay elements. The two delay elements may be configured such that onecapacitor in one delay element is being charged up with current, whilethe other capacitor in the other delay element is being cleared. The twodelay elements create approximately equal delays that are used to definethe low and high periods of system clock 90. The delay is set by therelationship T=C*V/I. The clock signal of system clock 90, therefore,may be adjusted by changing the input current to system clock 90. As anexample, the transfer function of system clock 90 may be represented by:Tsys=1/(2¹⁵*(1+80*Sys Clk Trim)),which may be linearized to the first order and represented as:Tsys≈2⁻¹⁵−149n*Sys Clk TrimSince the offset value of 2⁻¹⁵ is of little consequence and it makes thetransfer function cumbersome, only the dynamic portion may be used andrepresented as:Tsys≈−150n*Sys Clk Trim.

Furthermore, the overall transfer function of clock calibrator 94A maybe represented as:Y=Tsys*Sys Clk ErrorY=−150n*2⁷/(Ncount*(z−1))*−(Tref−Tsys)*(Ncount/Tref)Y=150n*2⁷*(Tref−Tsys)/(Tref*(z−1))If Tref is assumed to be a constant equal to 2⁻¹⁵ and gain is set equalto 1, then:H=1/(z−1)Y=Tref*H/(1+H)=1/zNoise Transfer Function (NTF)=Tref*1/(1+H)=(z−1)/z

Additionally, in accordance with the techniques described herein, clockcalibrator 94A of FIG. 6 and clock calibrator 94B of FIG. 7 may requiresome storage element support to perform the calibration routines. Forexample, in the case of clock calibrator 94A, one or more storageelements may be required to hold a trim value of system clock 90, a trimvalue of reference clock 92, Ncount options (e.g., 2¹⁴, 2¹⁵, 2¹⁶), andTcal options (e.g., 3.75 min, 7.5 min, 15 min, 30 min, 60 min).Moreover, in the case of clock calibrator 94B, one or more additionalstorage elements may be required to hold a trim value of telemetrypolling clock 100 and a trim value of telemetry linking clock 102.

FIG. 11 is a flow diagram of an example method of performing acalibration routine with a delta-sigma loop to calibrate a system clock.The example method of FIG. 11 is described as being performed by clockcalibrator 94A of FIGS. 6 and 8. As described in more detail below,clock calibrator 94B of FIG. 7 may also implement this method. In otherexamples, one or more other calibrators or processors may implement allor part of this method.

Processor 80 operates IMD 16 in accordance with system clock 90 (124).For example, processor 80 may control the delivery of stimulationtherapy to organs or tissue by signal generator 84 and may control themonitoring of electrical activity of the organs or tissue by electricalsensing module 86 according to the clock cycles of system clock 90.

During operation of IMD 16, controller 103 included in clock calibrator94A may monitor an amount of time, T, since performing the lastcalibration routine to determine whether a calibration period, Tcal, haselapsed. In other examples, processor 80 or another processor or devicemay monitor the calibration period. Clock calibrator 94A periodicallyperforms the calibration routine according to the calibration period.For example, the calibration period, Tcal, may be set equal to 3.75minutes, 7.5 minutes, 15 minutes, 30 minutes, or 60 minutes.

If the calibration period has not yet elapsed (T≠Tcal) (“no” 126), thenprocessor 80 will continue to operate IMD 16 in accordance with systemclock 90 (124). If the calibration period has elapsed (T=Tcal) (“yes”126), then clock calibrator 94A will perform the calibration routine. Atthe start of the calibration routine, controller 103 of clock calibrator94A powers on reference clock 92 (128). After it is powered on,reference clock 92 may be allowed to stabilize for approximately 1second. System clock 90 and reference clock 92 then run simultaneouslyover a fixed number of clock cycles of system clock 90. Clock comparator104 of clock calibrator 94A determines a clock error of system clock 90based on a difference between frequencies of system clock 90 andreference clock 92 during the fixed number of clock cycles (130). Forexample, clock comparator 104 may include a system counter clocked bysystem clock 90 and a reference counter clocked by reference clock 92such that the difference between the counters over the fixed number ofclock cycles is indicative of the clock error.

Clock adjuster 106 of clock calibrator 94A then integrates the clockerror determined by clock comparator 104 over time to calculate acumulative clock error of system clock 90 (132). Clock adjuster 106 thenadjusts a trim value of system clock 90 to compensate for the cumulativeclock error (134). For example, clock adjuster 106 may increase ordecrease the trim value of system clock 90 based on the magnitude andsign of the cumulative clock error. The delta-sigma loop of clockcalibrator 94A reduces the clock error over time, which allows accurateadjustment of the system clock to compensate for errors due to trimresolution, circuit noise and temperature.

At the end of the calibration routine, controller 103 of clockcalibrator 94A disables reference clock 92 (136). After the calibrationroutine, processor 80 continues to operate IMD 16 in accordance withsystem clock 90 as adjusted (124). In addition, controller 103 of clockcalibrator 94A returns to monitoring the calibration period (126) todetermine when to perform the next calibration routine.

In another example, clock calibrator 94B of FIG. 7 may perform thedescribed method to calibrate system clock 90 based on reference clock92. Clock calibrator 94B may also perform substantially similar methodsof performing calibration routines with delta-sigma loops to calibratetelemetry polling clock 100 and/or telemetry linking clock 102 oftelemetry module 88.

In the case of telemetry polling clock 100, clock calibrator 94B mayinclude two delta-sigma loops, one for calibrating system clock 90, asillustrated in FIG. 8, and another for calibrating telemetry pollingclock 100. In this example, clock calibrator 94B may periodicallyperform a calibration routine to simultaneously calibrate system clock90 and telemetry polling clock 100 according to the same calibrationperiod. Clock calibrator 94B may perform the calibration routine usingboth delta-sigma loops to determine clock errors for both system clock90 and telemetry polling clock 100 over a fixed number of clock cyclesof each respective clock, integrate the clock errors over time tocalculate cumulative clock errors, and adjust a trim value of each clockto compensate for the respective cumulative clock errors.

In the case of telemetry linking clock 102, clock calibrator 94B mayinclude an additional delta-sigma loop for continuously calibratingtelemetry linking clock 102 during a telemetry session. In this example,clock calibrator 94B periodically calibrates system clock 90 accordingto the calibration period, and may also periodically calibrate telemetrypolling clock 100 according to the same calibration period. In addition,clock calibrator 94B may continuously perform a calibration routine tocalibrate telemetry linking clock 102 based on reference clock 92 duringthe telemetry session. In this way, clock calibrator 94B may includethree separate delta-sigma loops, one for each clock to be calibrated.As discussed above, clock calibrator 94B may periodically use two of thedelta-sigma loops simultaneously to calibrate system clock 90 andtelemetry polling clock 100 according to the calibration period. Clockcalibrator 94B may use the third delta-sigma loop only during atelemetry session to continuously calibrate telemetry linking clock 102.

Clock calibrator 94B may power on reference clock 92 at a start of atelemetry session with, e.g., programmer 24. Clock calibrator 94B maythen continuously perform the calibration routine during the telemetrysession to determine a clock error of telemetry linking clock 102 over afixed number of clock cycles of telemetry linking clock 102, integratethe clock error over time to calculate a cumulative clock error, andadjust a trim value of telemetry linking clock 102 to compensate for thecumulative clock error. At the end of the telemetry session, clockcalibrator 94B may disable reference clock 92. The calibration routinefor telemetry linking clock 102 may be performed continuously during thetelemetry session because extremely high clocking accuracy is requiredto perform telemetry.

FIG. 12 is a functional block diagram of an example configuration ofprogrammer 24. As shown in FIG. 12, programmer 24 includes processor140, memory 142, user interface 144, telemetry module 146, and powersource 148. Programmer 24 may be a dedicated hardware device withdedicated software for programming of IMD 16. Alternatively, programmer24 may be an off-the-shelf computing device running an application thatenables programmer 24 to program IMD 16. In other examples, programmer24 may be used to program IMD 116 of FIG. 7 in a substantially similarmanner as IMD 16 of FIG. 6.

A user may use programmer 24 to select therapy programs (e.g., sets ofstimulation parameters), generate new therapy programs, or modifytherapy programs for IMD 16. The clinician may interact with programmer24 via user interface 144, which may include a display to present agraphical user interface to a user, and a keypad or another mechanismfor receiving input from a user.

Processor 140 can take the form one or more microprocessors, DSPs,ASICs, FPGAs, programmable logic circuitry, or the like, and thefunctions attributed to processor 140 in this disclosure may be embodiedas hardware, firmware, software or any combination thereof. Memory 142may store instructions and information that cause processor 140 toprovide the functionality ascribed to programmer 24 in this disclosure.Memory 142 may include any fixed or removable magnetic, optical, orelectrical media, such as RAM, ROM, CD-ROM, hard or floppy magneticdisks, EEPROM, or the like. Memory 142 may also include a removablememory portion that may be used to provide memory updates or increasesin memory capacities. A removable memory may also allow patient data tobe easily transferred to another computing device, or to be removedbefore programmer 24 is used to program therapy for another patient.Memory 142 may also store information that controls therapy delivery byIMD 16, such as stimulation parameter values.

Programmer 24 may communicate wirelessly with IMD 16, such as using RFcommunication or proximal inductive interaction. This wirelesscommunication is possible through the use of telemetry module 146, whichmay be coupled to an internal antenna or an external antenna. Anexternal antenna that is coupled to programmer 24 may correspond to theprogramming head that may be placed over heart 12, as described abovewith reference to FIG. 1. Telemetry module 146 may be similar totelemetry module 88 of IMD 16 (FIG. 6).

Telemetry module 146 may also be configured to communicate with anothercomputing device via wireless communication techniques, or directcommunication through a wired connection. Examples of local wirelesscommunication techniques that may be employed to facilitatecommunication between programmer 24 and another computing device includeRF communication according to the 802.11 or Bluetooth specificationsets, infrared communication, e.g., according to the IrDA standard, orother standard or proprietary telemetry protocols. In this manner, otherexternal devices may be capable of communicating with programmer 24without needing to establish a secure wireless connection. An additionalcomputing device in communication with programmer 24 may be a networkeddevice such as a server capable of processing information retrieved fromIMD 16.

In some examples, processor 140 of programmer 24 and/or one or moreprocessors of one or more networked computers may perform all or aportion of the techniques described in this disclosure with respect toprocessor 80 and IMD 16. For example, processor 140 or another processormay receive one or more signals from electrical sensing module 86, orinformation regarding sensed parameters from IMD 16 via telemetry module146. In some examples, processor 140 may process or analyze sensedsignals, as described in this disclosure with respect to IMD 16 andprocessor 80. In another example, processor 140 or another processor maytransmit one or more signals to IMD 16 to select a different calibrationperiod, Tcal, for clock calibrator 94A. The calibration period may beselected from a group of possible Tcal stored in a storage elementassociated with clock calibrator 94A, or may be directly specified by auser of programmer 24. Moreover, processor 140 may transmit one or moresignals to IMD 16 to select a different fixed number of clock cycles,Ncount, for the clock counters included in clock calibrator 94A. Thefixed number of clock cycles may be selected from a group of possibleNcount stored in a storage element associated with clock calibrator 94A,or may be directly specified by a user of programmer 24.

FIG. 13 is a block diagram illustrating an example system that includesan external device, such as a server 204, and one or more computingdevices 210A-210N, that are coupled to the IMD 16 and programmer 24(shown in FIGS. 1 and 2) via a network 202. In other examples, thesystem of FIG. 13 may include IMD 116 of FIG. 7 in a substantiallysimilar manner as IMD 16 of FIG. 6.

In this example, IMD 16 may use its telemetry module 88 to communicatewith programmer 24 via a first wireless connection, and to communicationwith an access point 200 via a second wireless connection. In theexample of FIG. 13, access point 200, programmer 24, server 204, andcomputing devices 210A-210N are interconnected, and able to communicatewith each other, through network 202. In some cases, one or more ofaccess point 200, programmer 24, server 204, and computing devices210A-210N may be coupled to network 202 through one or more wirelessconnections. IMD 16, programmer 24, server 204, and computing devices210A-210N may each comprise one or more processors, such as one or moremicroprocessors, DSPs, ASICs, FPGAs, programmable logic circuitry, orthe like, that may perform various functions and operations, such asthose described herein.

Access point 200 may comprise a device that connects to network 202 viaany of a variety of connections, such as telephone dial-up, digitalsubscriber line (DSL), or cable modem connections. In other examples,access point 200 may be coupled to network 202 through different formsof connections, including wired or wireless connections. In someexamples, access point 200 may be co-located with patient 14 and maycomprise one or more programming units and/or computing devices (e.g.,one or more monitoring units) that may perform various functions andoperations described herein. For example, access point 200 may include ahome-monitoring unit that is co-located with patient 14 and that maymonitor the activity of IMD 16. In some examples, server 204 orcomputing devices 210 may control or perform any of the variousfunctions or operations described herein.

In some cases, server 204 may be configured to provide a secure storagesite for data that has been collected from IMD 16 and/or programmer 24.Network 202 may comprise a local area network, wide area network, orglobal network, such as the Internet. In some cases, programmer 24 orserver 206 may assemble data in web pages or other documents for viewingby trained professionals, such as clinicians, via viewing terminalsassociated with computing devices 210A-210N. The illustrated system ofFIG. 13 may be implemented, in some aspects, with general networktechnology and functionality similar to that provided by the MedtronicCareLink® Network developed by Medtronic, Inc., of Minneapolis, Minn.

In some examples, processor(s) 208 of server 204 may be configured toprovide some or all of the functionality ascribed to IMD 16 andprocessor 80 herein. For example, processor 208 may receive one or moresignals from electrical sensing module 86 or other information regardingsensed parameters from IMD 16 via access point 200 or programmer 24 andnetwork 202. In some examples, server 204 relays received signalsprovided by one or more of IMD 16 or programmer 24 to one or more ofcomputing devices 210 via network 202. A processor of a computing device210 may provide some or all of the functionality ascribed to IMD 16 andprocessor 80 in this disclosure.

In one or more examples, the functions described may be implemented inhardware, software, firmware, or any combination thereof. If implementedin software, the functions may be stored on or transmitted over as oneor more instructions or code on a computer-readable medium.Computer-readable media may include computer data storage media orcommunication media including any medium that facilitates transfer of acomputer program from one place to another. Data storage media may beany available media that can be accessed by one or more computers or oneor more processors to retrieve instructions, code and/or data structuresfor implementation of the techniques described in this disclosure. Byway of example, and not limitation, such computer-readable media cancomprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage,magnetic disk storage, or other magnetic storage devices, flash memory,or any other medium that can be used to carry or store desired programcode in the form of instructions or data structures and that can beaccessed by a computer. Also, any connection is properly termed acomputer-readable medium. For example, if the software is transmittedfrom a website, server, or other remote source using a coaxial cable,fiber optic cable, twisted pair, digital subscriber line (DSL), orwireless technologies such as infrared, radio, and microwave, then thecoaxial cable, fiber optic cable, twisted pair, DSL, or wirelesstechnologies such as infrared, radio, and microwave are included in thedefinition of medium. Disk and disc, as used herein, includes compactdisc (CD), laser disc, optical disc, digital versatile disc (DVD),floppy disk and blu-ray disc where disks usually reproduce datamagnetically, while discs reproduce data optically with lasers.Combinations of the above should also be included within the scope ofcomputer-readable media.

The code may be executed by one or more processors, such as one or moredigital signal processors (DSPs), general purpose microprocessors,application specific integrated circuits (ASICs), field programmablelogic arrays (FPGAs), or other equivalent integrated or discrete logiccircuitry. Accordingly, the term “processor,” as used herein may referto any of the foregoing structure or any other structure suitable forimplementation of the techniques described herein. In addition, in someaspects, the functionality described herein may be provided withindedicated hardware and/or software modules. Also, the techniques couldbe fully implemented in one or more circuits or logic elements.

Various examples of the disclosure have been described. These and otherexamples are within the scope of the following claims.

The invention claimed is:
 1. An implantable medical device (IMD) comprising: a processor; a system clock that comprises a low power oscillator, according to which the processor operates the IMD; a reference clock that comprises a high accuracy oscillator; and a clock calibrator that periodically performs a calibration routine to calibrate the system clock based on the reference clock, wherein the system clock is continuously powered and the reference clock is powered during the calibration routine, wherein the clock calibrator comprises: a controller that powers on the reference clock at a start of the calibration routine, and disables the reference clock at an end of the calibration routine; a clock comparator that determines a clock error of the system clock based on a difference between frequencies of the system clock and the reference clock over a fixed number of clock cycles of the system clock, wherein the clock comparator includes: a system clock counter that is set equal to the fixed number of clock cycles and decrements by one for each clock cycle of the system clock, wherein the system clock counter stops when equal to zero; and a reference clock counter that is set equal to the fixed number of clock cycles and decrements by one for each clock cycle of the reference clock, wherein the reference clock counter stops at a reference count value when the system clock counter is equal to zero, wherein the reference count value is indicative of the clock error of the system clock; and a clock adjuster that adjusts a trim value of the system clock to compensate for the clock error.
 2. The IMD of claim 1, wherein the clock calibrator performs the calibration routine with a delta-sigma loop, and wherein the clock adjuster integrates the clock error over time to calculate a cumulative clock error of the system clock, and adjusts the trim value of the system clock based on a magnitude and sign of the cumulative clock error.
 3. The IMD of claim 1, further comprising: a telemetry module; and a telemetry polling clock, according to which the telemetry module monitors for a telemetry downlink, wherein the clock calibrator periodically performs the calibration routine to simultaneously calibrate the system clock and the telemetry polling clock based on the reference clock.
 4. The IMD of claim 1, further comprising: a telemetry module; and a telemetry linking clock, according to which the telemetry module performs a telemetry session once a telemetry downlink is present, and wherein the clock calibrator continuously performs a calibration routine to calibrate the telemetry linking clock based on the reference clock during the telemetry session, wherein the reference clock is powered continuously during the telemetry session.
 5. The IMD of claim 1, wherein the clock calibrator periodically performs the calibration routine according to a calibration period set equal to one of 3.75 minutes, 7 minutes, 15 minutes, 30 minutes and 60 minutes.
 6. The IMD of claim 1, wherein the reference clock comprises a crystal oscillator.
 7. An implantable medical device (IMD) comprising: An implantable medical device (IMD) comprising: a processor; a system clock that comprises a low power oscillator, according to which the processor operates the IMD; a reference clock that comprises a high accuracy oscillator; and a clock calibrator that periodically performs a calibration routine to calibrate the system clock based on the reference clock, wherein the system clock is continuously powered and the reference clock is powered during the calibration routine, wherein the system clock and the reference clock operate at a same clock frequency value.
 8. An implantable medical device (IMD) comprising: a system clock that comprises a low power oscillator; a reference clock that comprises a high accuracy oscillator; means for operating the IMD in accordance with the system clock; means for periodically performing a calibration routine to calibrate the system clock based on the reference clock, wherein the system clock is continuously powered and the reference clock is powered during the calibration routine; means for powering on the reference clock at a start of the calibration routine; means for determining a clock error of the system clock based on a difference between frequencies of the system clock and the reference clock over a fixed number of clock cycles of the system clock, wherein means for determining a clock error of the system clock further comprise: means for setting a system clock counter and a reference clock counter equal to the fixed number of clock cycles; means for decrementinq the system clock counter by one for each clock cycle of the system clock, wherein the system clock counter stops when equal to zero; and means for decrementinq the reference clock counter by one for each clock cycle of the reference clock, wherein the reference clock counter stops at a reference count value when the system clock counter is equal to zero, wherein the reference count value is indicative of the clock error of the system clock; and means for adjusting a trim value of the system clock to compensate for the clock error; and means for disabling the reference clock at an end of the calibration routine.
 9. The IMD of claim 8, wherein means for periodically performing a calibration routine to calibrate the system clock further comprise means for periodically performing a calibration routine with a delta-sigma loop, the IMD further comprising: means for integrating the clock error over time to calculate a cumulative clock error of the system clock; and means for adjusting the trim value of the system clock based on a magnitude and sign of the cumulative clock error.
 10. The IMD of claim 8, further comprising: a telemetry polling clock; means for monitoring for a telemetry downlink in accordance with the telemetry polling clock; and means for periodically performing the calibration routine to simultaneously calibrate the system clock and the telemetry polling clock based on the reference clock.
 11. The IMD of claim 8, further comprising: a telemetry linking clock; means for performing a telemetry session in accordance with the telemetry linking clock once a telemetry downlink is present; and means for continuously performing a calibration routine to calibrate the telemetry linking clock based on the reference clock during the telemetry session, wherein the reference clock is powered continuously during the telemetry session.
 12. The IMD of claim 8, wherein means for periodically performing a calibration routine to calibrate the system clock further comprise means for periodically performing the calibration routine according to a calibration period set equal to one of 3.75 minutes, 7 minutes, 15 minutes, 30minutes and 60 minutes.
 13. The IMD of claim 8, wherein the reference clock comprises a crystal oscillator.
 14. An implantable medical device (IMD) comprising: a system clock that comprises a low power oscillator; a reference clock that comprises a high accuracy oscillator; means for operating the IMD in accordance with the system clock; and means for periodically performing a calibration routine to calibrate the system clock based on the reference clock, wherein the system clock is continuously powered and the reference clock is powered during the calibration routine, wherein the system clock and the reference clock operate at a same clock frequency value. 